A Developer's Guide to Silhouette Algorithms for Polygonal Models
نویسندگان
چکیده
part of artistic expression (for example, any pencil or pen-and-ink drawing), scientific illustrations (medical or technical), or entertainment graphics (such as in comics). Hence, computer graphics researchers have extensively studied the automatic generation of such lines. In particular, the area of nonphotorealistic rendering has focused on two main directions of research in this respect: the generation of hatching that conveys illumination as well as texture in an image and the computation of outlines and silhouettes. Silhouettes play an important role in shape recognition because they provide one of the main cues for figure-to-ground distinction. However, since silhouettes are view dependent, they need to be determined for every frame of an animation. Finding an efficient way to accomplish this is nontrivial. Indeed, a variety of different algorithms exist that compute silhouettes for geometric objects. This article provides a guideline for developers who need to choose between one of these algorithms for his or her application. Here, we restrict ourselves to discussing only those algorithms that apply to polygonal models, because these are the most commonly used object representations in modern computer graphics. (For an algorithm to compute the silhouette for free-form surfaces see, for example, Elber and Cohen.) Thus, we can use all algorithms discussed here to take a polygonal mesh as input and compute the visible part of the silhouette as output. Some algorithms, however, can also help compute the silhouette only, without additional visibility culling. The silhouette’s representation might vary depending on the algorithm class—that is, the silhouette might take the form of a pixel matrix or a set of analytic stroke descriptions. Definitions and terminology The silhouette S of a free-form object is typically defined as the set of points on the object’s surface where the surface normal is perpendicular to the vector from the viewpoint. Mathematically, this means that the dot product of the normal ni with the view vector at a surface vertex P’s position pi is zero: S = {P : 0 = ni ⋅ (pi − c)}, with c being the center of projection. In case of orthographic projection (pi − c) is exchanged with the view direction vector v. Unfortunately, for polygonal objects this definition can’t be applied because normals are only well defined for polygons and not for arbitrary points on the surface. Hence, typically no points exist on the surface where the normal is perpendicular to the viewing direction. However, we can find silhouettes along those edges in a polygonal model that lie on the border between changes of surface visibility. Thus, we define the silhouette edges of a polygonal model as edges in the mesh that share a frontand a back-facing polygon. Some authors refer to the contour rather than the silhouette. We define a contour as the subset of the silhouette that separates the object from the background. Also, the subset of the silhouette, which in 2D divides one portion of the object from another one of the same object, is not part of the contour. Those lines are sometimes called internal silhouettes. Other lines significant in the context of silhouettes are creases, borders, and self-intersections. Creases are edges that should always be drawn, for instance the edges of a cube. Typically, we can identify a crease by comparing the angle between its two adjacent polygons with a certain threshold. Border lines only appear in models where the mesh is not closed and are those edges with only one adjacent polygon. Lastly, self-intersection lines are where two polygons of a model intersect. They aren’t necessarily part of the model’s edges but are important for shape recognition. In the literature, these three additional line categories together with the silhouette lines are often called feature lines. Some silhouette detection methods make no algorithmic distinction between these types of lines. This is because you must determine Survey
منابع مشابه
Silhouette Smoothing by Boundary Curve Interpolation
Conspicuous and visually unpleasant polygonal silhouettes are often produced when rendering a polyhedral approximation (i.e. a polygonal mesh) of a smooth surface model, regardless whatever shading method is used to improve the appearance of the interior region. We present in this paper a technique for displaying a coarse polygonal mesh with smooth silhouette. Unlike other existing methods that...
متن کاملA Developer's Survey of Polygonal Simplification Algorithms
Polygonal simplification, a.k.a. level of detail, is an important tool for anyone doing interactive rendering, but how is a developer to choose among the dozens of published algorithms? This article surveys the field from a developer’s point of view, attempting to identify the issues in picking an algorithm, relate the strengths and weaknesses of different approaches, and describe a number of p...
متن کاملStylizing Silhouettes at Interactive Rates: From Silhouette Edges to Silhouette Strokes
A way to create effective stylized line drawings is to draw strokes that start and stop at visible portions along the silhouette of an object to be portrayed. In computer graphics to date, algorithms to extract silhouette edges are many, although putting these edges into a form such that stylized strokes may be applied to them has not been greatly covered, so that existing methods are either ti...
متن کاملPolygonal silhouette error correction: a reverse subdivision approach
A method for automatic removal of artifacts and errors that can appear in silhouettes extracted from polygonal meshes is presented and evaluated. These errors typically appear in polygonal silhouettes due to the discrete nature of meshes and numerical instabilities. The approach presented works in object space on silhouette curves made by chaining together silhouette edges and uses multiresolut...
متن کاملOutput Sensitive Extraction of Silhouettes from Polygonal Geometry
clearly be used in nding the new set of cells and/or edges that needs to be visited in the grid, building the solution of the next silhouette query based on the solution of the previous query. (a) (b) Figure 9: A dinner scene. In (a), the polygonal model and in (b), the silhouette and boundary. bounded by O(n) and hence is in the same order of the magnitude of the input, large models can take f...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IEEE Computer Graphics and Applications
دوره 23 شماره
صفحات -
تاریخ انتشار 2003